1800
How can I highlight somehow the child bars of a summary bar

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Color = 15790320");
items = _ObjectGetProperty( g2antt , "Items");
	hSummary = _ObjectCallMethod( items , "AddItem", "Summary");
	_ObjectCallMethod( items , "AddBar", hSummary,"Project Summary","1/2/2001","1/2/2001","");
	hTask = _ObjectCallMethod( items , "InsertItem", hSummary,"","Task A");
	_ObjectCallMethod( items , "AddBar", hTask,"Task","1/2/2001","1/5/2001","K1");
	hTask = _ObjectCallMethod( items , "InsertItem", hSummary,"","Task B");
	_ObjectCallMethod( items , "AddBar", hTask,"Task","1/4/2001","1/8/2001","K2");
	hTask = _ObjectCallMethod( items , "InsertItem", hSummary,"","Task C");
	_ObjectCallMethod( items , "AddBar", hTask,"Task","1/6/2001","1/10/2001","K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hSummary")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hSummary)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(hSummary) = True");
	_ObjectCallMethod( items , "DefineSummaryBars", hSummary,"",-1,"<*>");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(hSummary,``,34) = 65536");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(hSummary,``,35) = 50");
_ObjectCallMethod( g2antt , "EndUpdate");

1799
How do I change the color for the selected bars, without showing the frame arround

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2002");
	_ObjectSetProperty( chart , "SelBarColor", 2130706687);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 48");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/2/2002","1/4/2002","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/6/2002","1/10/2002","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 3"),"Task","1/11/2002","1/14/2002","C");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<A B>`,257) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

1798
Is it possible to enumerate the activities/bars of critical path

// BarResize event - Occurs when a bar is moved or resized.
FUNCTION g2anttEvents_BarResize(OBJECT g2antt, INT Item, VARIANT Key)
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "SchedulePDM", Item,Key);
END

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Def(3) = `<%=int(%269) > 0 ? (`<b>` + %269 + `</b>`) : ``%>`");
items = _ObjectGetProperty( g2antt , "Items");
	hSummary1 = _ObjectCallMethod( items , "AddItem", "Summary");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hSummary1")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hSummary1)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(hSummary1) = True");
	_ObjectCallMethod( items , "AddBar", hSummary1,"Summary","1/2/2001","1/2/2001","sum");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001");
	_ObjectCallMethod( items , "DefineSummaryBars", hSummary1,"sum",h1,"");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/2/2001","1/4/2001");
	_ObjectCallMethod( items , "DefineSummaryBars", hSummary1,"sum",h2,"");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"",h2,"");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/2/2001","1/4/2001");
	_ObjectCallMethod( items , "DefineSummaryBars", hSummary1,"sum",h3,"");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"",h3,"");
	h4 = _ObjectCallMethod( items , "AddItem", "Task 4");
	_ObjectCallMethod( items , "AddBar", h4,"Task","1/2/2001","1/4/2001");
	_ObjectCallMethod( items , "DefineSummaryBars", hSummary1,"sum",h4,"");
	_ObjectCallMethod( items , "AddLink", "L3",h1,"",h4,"");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.DefSchedulePDM(5) = 65280");
	_ObjectCallMethod( items , "SchedulePDM", h1,"");
_ObjectCallMethod( g2antt , "EndUpdate");

1797
How can I add a SF link

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/25/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "LevelCount", 2);
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/2/2001","1/5/2001","K2");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/2/2001","1/5/2001","K3");
	h4 = _ObjectCallMethod( items , "AddItem", "Task 4");
	_ObjectCallMethod( items , "AddBar", h4,"Task","1/2/2001","1/5/2001","K4");
	h5 = _ObjectCallMethod( items , "AddItem", "Task 5");
	_ObjectCallMethod( items , "AddBar", h5,"Task","1/2/2001","1/5/2001","K5");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod( items , "AddLink", "L3",h3,"K3",h4,"K4");
	_ObjectCallMethod( items , "AddLink", "L4",h4,"K4",h5,"K5");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L4`,6) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L4`,7) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L4`,8) = 65280");
	_ObjectCallMethod( items , "SchedulePDM", 0,"K5");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ShowLinks", 1);
_ObjectCallMethod( g2antt , "EndUpdate");

1796
How do I get the Start and End date of a bar

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
_ObjectSetProperty( g2antt , "Debug", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 96");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","9/21/2006","9/24/2006","K1");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","9/22/2006","9/25/2006","K2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 3"),"Task","9/23/2006","9/26/2006","K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemByIndex(1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	Message( "Start of " );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FirstItemBar(h)") );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),1)") );
	Message( "End of  " );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FirstItemBar(h)") );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),2)") );
_ObjectCallMethod( g2antt , "EndUpdate");

1795
I haven't found options to change/localize (in German, or my current regional settings) the captions/text/strings ( dates, tooltip ) that shows in the chart area (method 2)

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstWeekDay", _ObjectGetProperty( chart , "LocFirstWeekDay"));
	_ObjectSetProperty( chart , "MonthNames", _ObjectGetProperty( chart , "LocMonthNames"));
	_ObjectSetProperty( chart , "WeekDays", _ObjectGetProperty( chart , "LocWeekDays"));
	_ObjectSetProperty( chart , "AMPM", _ObjectGetProperty( chart , "LocAMPM"));
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "UnitScale", 4096);

1794
Is it possible to change caption of the print and print preview, as it just says "Untitled Document", but I cant find the code that writes this caption

OBJECT createobject("exontrol.print"),g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/1/2001");
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/5/2001","1/7/2001","K2");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
_ObjectCallMethod( g2antt , "EndUpdate");
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	_ObjectSetProperty( createobject("exontrol.print") , "Caption", "This is your new caption for print and print preview");
	_ObjectSetProperty( createobject("exontrol.print") , "AutoRelease", 0);
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", g2antt);
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

1793
Is it possible to specify the A4 paper size for the print preview
OBJECT createobject("exontrol.print"),g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/1/2001");
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/5/2001","1/7/2001","K2");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
_ObjectCallMethod( g2antt , "EndUpdate");
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim creObj")
	_ObjectCallMethod(g2antt, "TemplatePut", createobject("exontrol.print"))
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "creObj.Settings(0) = 9");
	_ObjectSetProperty( createobject("exontrol.print") , "AutoRelease", 0);
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", g2antt);
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

1792
Is it possible to tell the print preview to open up in "landscape mode" by default, not in "portrait mode"
OBJECT createobject("exontrol.print"),g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/1/2001");
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/5/2001","1/7/2001","K2");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
_ObjectCallMethod( g2antt , "EndUpdate");
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	_ObjectSetProperty( createobject("exontrol.print") , "PageOrientation", 2);
	_ObjectSetProperty( createobject("exontrol.print") , "AutoRelease", 0);
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", g2antt);
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

1791
How do I prevent a caption outside the bar from overlapping other bars

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","Default-Task");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).OverlaidType = 4611");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","A1","task");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A1`,4) = 18");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/6/2001","1/10/2001","A2","task");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A2`,4) = 16");
	h = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h,"Default-Task","1/2/2001","1/4/2001","A1","task");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A1`,4) = 18");
	_ObjectCallMethod( items , "AddBar", h,"Default-Task","1/6/2001","1/10/2001","A2","task");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A2`,4) = 16");
_ObjectCallMethod( g2antt , "EndUpdate");

1790
How do I clip/hide/align the bar's extra-caption/text based on the bar's size/width/length

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Clip");
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowResizeChart", 6);
	_ObjectSetProperty( chart , "DrawGridLines", -2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/23/2000");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 216");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 32);
		_ObjectSetProperty( bar , "Color", 10790052);
		_ObjectSetProperty( bar , "StartColor", 15790320);
		_ObjectSetProperty( bar , "EndColor", _ObjectGetProperty( bar , "StartColor"));
		_ObjectSetProperty( bar , "OverlaidType", 4611);
		_ObjectSetProperty( bar , "Height", 15);
	_ObjectSetProperty( chart , "MinUnitWidth", _ObjectGetProperty( chart , "UnitWidth"));
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "no clip, (0-2)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","K1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,44) = `no clip, right(<b>2</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,45) = 2");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,44) = `no clip, center(<b>1</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,45) = 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","K3","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,44) = `no clip, left(<b>0</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,45) = 0");
	h = _ObjectCallMethod( items , "AddItem", "clip, inside (3-5)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,44) = `clip, inside, right(<b>5</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,45) = 5");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,44) = `clip, inside, center(<b>4</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,45) = 4");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,44) = `clip, inside, left(<b>3</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,45) = 3");
	h = _ObjectCallMethod( items , "AddItem", "hide on min width, clip if not fit, inside (6-8)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/26/2000","1/10/2001","K1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,44) = `hide on min width, clip if not fit, inside, right(<b>8</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,45) = 8");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/26/2000","1/10/2001","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,44) = `hide on min width, clip if not fit, inside, center(<b>7</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,45) = 7");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/26/2000","1/10/2001","K3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,44) = `hide on min width, clip if not fit, inside, left(<b>6</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,45) = 6");
	h = _ObjectCallMethod( items , "AddItem", "hide if not fit, no clip, inside (9-11)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,44) = `hide if not fit, no clip, inside, right(<b>11</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,45) = 11");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,44) = `hide if not fit, no clip, center(<b>10</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,45) = 10");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,44) = `hide if not fit, no clip, inside, left(<b>9</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,45) = 9");
	h = _ObjectCallMethod( items , "AddItem", "no clip, inside, outside (12-14)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,44) = `no clip, inside, outside, right(<b>14</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,45) = 14");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,44) = `no clip, inside, outside, center(<b>13</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,45) = 13");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,44) = `no clip, inside, outside, left(<b>12</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,45) = 12");
	h = _ObjectCallMethod( items , "AddItem", "no clip, outside (16-18)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/30/2000","1/6/2001","K1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,44) = `no clip, outside, right(<b>18</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,45) = 18");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/30/2000","1/6/2001","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,44) = `no clip, outside, center(<b>17</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,45) = 17");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/30/2000","1/6/2001","K3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,44) = `no clip, outside, left(<b>16</b>)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,45) = 16");
_ObjectCallMethod( g2antt , "EndUpdate");

1789
What options do I have to show the links between bars (rectangular SEV, starts vertically, ends vertically)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = 5");
_ObjectCallMethod( g2antt , "EndUpdate");

1788
What options do I have to show the links between bars (rectangular SV, starts vertically, ends horizontally)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = 4");
_ObjectCallMethod( g2antt , "EndUpdate");

1787
What options do I have to show the links between bars (rectangular EV, starts horizontally, ends vertically)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = 3");
_ObjectCallMethod( g2antt , "EndUpdate");

1786
What options do I have to show the links between bars (straight)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = 2");
_ObjectCallMethod( g2antt , "EndUpdate");

1785
What options do I have to show the links between bars (direct)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1784
What options do I have to show the links between bars (round)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = -1");
_ObjectCallMethod( g2antt , "EndUpdate");

1783
What options do I have to show the links between bars (rectangular, default)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "LinksWidth", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/13/2001","1/15/2001","K3");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/7/2001","1/9/2001","K2");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`<*>`,15) = 0");
_ObjectCallMethod( g2antt , "EndUpdate");

1782
I have a question about whether the control has the functionality to add two bars on the same item, as one would correspond to the item bar and another bar their progress, but progress is required to show dividedly at different times outside the activity bar item

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 64");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Progress","TProgressD");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectSetProperty( bar , "Shape", 20);
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Progress","TProgressC");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Progress","TProgressU");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectSetProperty( bar , "Shape", 18);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","9/25/2006","9/30/2006","T1");
	_ObjectCallMethod( items , "AddBar", h,"TProgressU","9/25/2006","10/4/2006","TP1");
	_ObjectCallMethod( items , "GroupBars", h,"T1",-1,h,"TP1",-1,3);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`TP1`,3) = `<font ;6>progress up`");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","9/26/2006","10/1/2006","T2");
	_ObjectCallMethod( items , "AddBar", h,"TProgressC","9/26/2006","10/5/2006","TP2");
	_ObjectCallMethod( items , "GroupBars", h,"T2",-1,h,"TP2",-1,3);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`TP2`,3) = `<font ;6>progress center`");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","9/25/2006","9/30/2006","T3");
	_ObjectCallMethod( items , "AddBar", h,"TProgressD","9/25/2006","10/6/2006","TP3");
	_ObjectCallMethod( items , "GroupBars", h,"T3",-1,h,"TP3",-1,3);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`TP3`,3) = `<font ;6>progress down`");
_ObjectCallMethod( g2antt , "EndUpdate");

1781
I have a column of date-type, the question is how can I move the associated bar, instead of resizing it (summary, inclusive, working)

OBJECT bar,bars,chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "MarkSearchColumn", 0);
_ObjectSetProperty( g2antt , "Indent", 11);
_ObjectSetProperty( g2antt , "HasLines", 1);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	column = _ObjectCallMethod( columns , "Add", "Start");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 544");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
		_ObjectSetProperty( column , "LevelKey", 1);
	column = _ObjectCallMethod( columns , "Add", "End");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 546");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
		_ObjectSetProperty( column , "LevelKey", 1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "AllowLinkBars", 0);
	_ObjectSetProperty( chart , "AllowCreateBar", 0);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 224");
	bars = _ObjectGetProperty( chart , "Bars");
		bar = _ObjectCallMethod( bars , "Add", "Underline");
			_ObjectSetProperty( bar , "Color", 16711680);
			_ObjectSetProperty( bar , "Shape", 20);
		bar = _ObjectCallMethod( bars , "Add", "Task:Underline");
			_ObjectSetProperty( bar , "Shortcut", "T");
			_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
			_ObjectCallMethod(g2antt, "TemplatePut", bar)
			_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(20) = True");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	_ObjectCallMethod( items , "AddBar", h,"Summary","9/21/2006","10/3/2006");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"T","9/21/2006","9/24/2006");
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"T","9/24/2006","9/28/2006");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"T","9/28/2006","10/3/2006");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h1,"");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h2,"");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h3,"");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,544) = #9/22/2006#");
_ObjectCallMethod( g2antt , "EndUpdate");

1780
I have a column of date-type, the question is how can I move the associated bar, instead of resizing it (summary)

OBJECT chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "MarkSearchColumn", 0);
_ObjectSetProperty( g2antt , "Indent", 11);
_ObjectSetProperty( g2antt , "HasLines", 1);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	column = _ObjectCallMethod( columns , "Add", "Start");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 544");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
		_ObjectSetProperty( column , "LevelKey", 1);
	column = _ObjectCallMethod( columns , "Add", "End");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 545");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
		_ObjectSetProperty( column , "LevelKey", 1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "AllowLinkBars", 0);
	_ObjectSetProperty( chart , "AllowCreateBar", 0);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 224");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	_ObjectCallMethod( items , "AddBar", h,"Summary","9/21/2006","10/3/2006");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/21/2006","9/24/2006");
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","9/24/2006","9/28/2006");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"Task","9/28/2006","10/3/2006");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h1,"");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h2,"");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h3,"");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,544) = #9/22/2006#");
_ObjectCallMethod( g2antt , "EndUpdate");

1779
Is it possible to programmatically move all bars of specified key to end at specified date (inclusive)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<A*>`,546) = #1/2/2001#");
_ObjectCallMethod( g2antt , "EndUpdate");

1778
Is it possible to programmatically move all bars to end at specified date (inclusive)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<*>`,546) = #1/2/2001#");
_ObjectCallMethod( g2antt , "EndUpdate");

1777
Is it possible to programmatically move all bars of specified key to end at specified date

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<A*>`,545) = #1/2/2001#");
_ObjectCallMethod( g2antt , "EndUpdate");

1776
Is it possible to programmatically move all bars to end at specified date

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<*>`,545) = #1/2/2001#");
_ObjectCallMethod( g2antt , "EndUpdate");

1775
Is it possible to programmatically move all bars of specified key to start at specified date

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<A*>`,544) = #1/2/2001#");
_ObjectCallMethod( g2antt , "EndUpdate");

1774
Is it possible to programmatically move all bars to start at specified date

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<*>`,544) = #1/2/2001#");
_ObjectCallMethod( g2antt , "EndUpdate");

1773
Is it possible to programmatically move all bars of specified key

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<A*>`,514) = 2");
_ObjectCallMethod( g2antt , "EndUpdate");

1772
Is it possible to programmatically move all bars

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.1"),"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A.2"),"Task","1/2/2001","1/7/2001","A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.1"),"Task","1/3/2001","1/8/2001","B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B.2"),"Task","1/4/2001","1/9/2001","B");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<*>`,514) = 2");
_ObjectCallMethod( g2antt , "EndUpdate");

1771
How can I programmatically move a bar, so it ends at specified date (inclusive)
OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A`,546) = #1/4/2001#");

1770
How can I programmatically move a bar, so it ends at specified date
OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A`,545) = #1/4/2001#");

1769
How can I programmatically move a bar, so it starts at specified date
OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/1/2001","1/6/2001","A");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`A`,544) = #1/4/2001#");

1768
I can’t figure out how to control the date and time format (in level 0, 1 and 2) when the user click on the OverviewZoom bottom

OBJECT chart,g2antt,level;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderHeight", 22);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2016");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "DrawLevelSeparator", 2);
	_ObjectSetProperty( chart , "AllowResizeChart", 6);
	_ObjectSetProperty( chart , "MaxUnitWidth", 196);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0)");
		_ObjectSetProperty( level , "Alignment", 17);
		_ObjectSetProperty( level , "DrawTickLines", 2);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(1)");
		_ObjectSetProperty( level , "DrawTickLines", 65);
		_ObjectCallMethod( level , "DrawTickLinesFrom", 0,2);
		_ObjectSetProperty( level , "BackColor", 15790320);
	_ObjectSetProperty( chart , "OverviewVisible", 2);
	_ObjectSetProperty( chart , "AllowOverviewZoom", 1);
	_ObjectSetProperty( chart , "UnitWidth", 24);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(16777216) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(1048576) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(65536) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(256) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(4096) = `<font ;6><%d%><|><%d%><|><%d%> <fgcolor=A0A0A0><off -4><%d1%><|><%d%> <fgcolor=A0A0A0><off -4><%d2%><|><%d%> <fgcolor=A0A0A0><off -4><%d3%><|><%d%> <fgcolor=A0A0A0><off -4><%dddd%><||><||>4096`");
	_ObjectSetProperty( chart , "UnitScale", 4096);
	_ObjectCallMethod( chart , "ScrollTo", _ObjectGetProperty( chart , "FirstVisibleDate"),1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
_ObjectCallMethod( g2antt , "EndUpdate");

1767
Can I use GroupBars with OverlaidType method

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
_ObjectSetProperty( g2antt , "Debug", -1);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 96");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).OverlaidType = 3");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	_ObjectCallMethod( items , "AddBar", h,"Summary","9/21/2006","10/4/2006");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Tasks");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/21/2006","9/26/2006","h1");
	h2 = h1;
	_ObjectCallMethod( items , "AddBar", h2,"Task","9/25/2006","9/30/2006","h2");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"h1",h2,"h2");
	h3 = h1;
	_ObjectCallMethod( items , "AddBar", h3,"Task","9/29/2006","10/4/2006","h3");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"h2",h3,"h3");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h1,"h1");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h2,"h2");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h3,"h3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod( items , "GroupBars", h1,"h1",0,h2,"h2",-1,31,"0;5;-1");
	_ObjectCallMethod( items , "GroupBars", h2,"h2",0,h3,"h3",-1,31,"0;5;-1");
_ObjectCallMethod( g2antt , "EndUpdate");

1766
How do I change the link's lag so I can schedule bars to start later (with nonworking part)

// BarResizing event - Occurs when a bar is moving or resizing.
FUNCTION g2anttEvents_BarResizing(OBJECT g2antt, INT Item, VARIANT Key)
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "SchedulePDM", Item,Key);
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 22);
_ObjectSetProperty( g2antt , "HeaderHeight", _ObjectGetProperty( g2antt , "DefaultItemHeight"));
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LinksStyle", 0);
	_ObjectSetProperty( chart , "LinksColor", 8421504);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/28/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(20) = True");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectSetProperty( bar , "Color", 0);
		_ObjectSetProperty( bar , "StartColor", 12500670);
		_ObjectSetProperty( bar , "EndColor", _ObjectGetProperty( bar , "StartColor"));
		_ObjectSetProperty( bar , "Pattern", 32);
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/5/2001","K1","FS lag=0 (default)");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/2/2001","1/5/2001","K2","FS lag=4");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/2/2001","1/5/2001","K3","FS lag=-1");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L2`,16) = 4");
	h4 = _ObjectCallMethod( items , "AddItem", "Task 4");
	_ObjectCallMethod( items , "AddBar", h4,"Task","1/2/2001","1/5/2001","K4");
	_ObjectCallMethod( items , "AddLink", "L3",h3,"K3",h4,"K4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L3`,16) = -1");
	_ObjectCallMethod( items , "SchedulePDM", 0,"K1");
_ObjectCallMethod( g2antt , "EndUpdate");

1765
How do I change the link's lag so I can schedule bars to start later (without nonworking part)

// BarResizing event - Occurs when a bar is moving or resizing.
FUNCTION g2anttEvents_BarResizing(OBJECT g2antt, INT Item, VARIANT Key)
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "SchedulePDM", Item,Key);
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 22);
_ObjectSetProperty( g2antt , "HeaderHeight", _ObjectGetProperty( g2antt , "DefaultItemHeight"));
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LinksStyle", 0);
	_ObjectSetProperty( chart , "LinksColor", 8421504);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/28/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectSetProperty( bar , "Color", 0);
		_ObjectSetProperty( bar , "StartColor", 12500670);
		_ObjectSetProperty( bar , "EndColor", _ObjectGetProperty( bar , "StartColor"));
		_ObjectSetProperty( bar , "Pattern", 32);
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/5/2001","K1","FS lag=0 (default)");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/2/2001","1/5/2001","K2","FS lag=4");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/2/2001","1/5/2001","K3","FS lag=-1");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L2`,17) = 4");
	h4 = _ObjectCallMethod( items , "AddItem", "Task 4");
	_ObjectCallMethod( items , "AddBar", h4,"Task","1/2/2001","1/5/2001","K4");
	_ObjectCallMethod( items , "AddLink", "L3",h3,"K3",h4,"K4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L3`,17) = -1");
	_ObjectCallMethod( items , "SchedulePDM", 0,"K1");
_ObjectCallMethod( g2antt , "EndUpdate");

1764
Is it possible to select the entire row/line, when user clicks the first column, and select individually the rest of cells, while user clicks any other column

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// MouseDown event - Occurs when the user presses a mouse button.
FUNCTION g2anttEvents_MouseDown(OBJECT g2antt, INT Button, INT Shift, INT X, INT Y)
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	i = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim _ObObj,c")
	_ObjectCallMethod(g2antt, "TemplatePut", _ObjectGetProperty( g2antt , "Columns"))
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectSetProperty( g2antt , "FullRowSelect", _ObjectCallMethod(g2antt, "ExecuteTemplate", "_ObObj.Item(c).Data"));
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderHeight", 22);
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
_ObjectSetProperty( g2antt , "BackColorLock", 15790320);
_ObjectSetProperty( g2antt , "BackColorHeader", _ObjectGetProperty( g2antt , "BackColorLock"));
_ObjectSetProperty( g2antt , "HasLines", 0);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", 0);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "ReadOnly", -1);
_ObjectSetProperty( g2antt , "ShowFocusRect", 0);
_ObjectSetProperty( g2antt , "CountLockedColumns", 1);
_ObjectSetProperty( g2antt , "AutoDrag", 16);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "ColumnsAllowSizing", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "GridLineStyle", 48);
_ObjectSetProperty( g2antt , "GridLineColor", 14474460);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "LevelCount", 2);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 256");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).Data = -1");
_ObjectSetProperty( g2antt , "Layout", "singlesort=^"C5:1^";multiplesort=^" C1:2^"");
_ObjectCallMethod( g2antt , "EndUpdate");

1763
I've also hit a strange problem with the BeforeExpandItem event - the Cancel parameter is declared as const in Delphi when I believe it should be declared as var or out so I can use it to return OleVariant(True) to cancel the operation, or am I missing something, or how can I disable expanding / collapsing the items
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
FUNCTION g2anttEvents_BeforeExpandItem(OBJECT g2antt, INT Item, VARIANT Cancel)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "EventParam(1) = True");
END

// Event event - Notifies the application once the control fires an event.
FUNCTION g2anttEvents_Event(OBJECT g2antt, INT EventID)
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "EventParam(-2)") );
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root A");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root B");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

1762
Is there any way I can get rid / hide of the vertical blue lines ( today, selected date )
OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "MarkSelectDateColor", _ObjectGetProperty( chart , "BackColor"));
	_ObjectSetProperty( chart , "MarkTodayColor", _ObjectGetProperty( chart , "BackColor"));
_ObjectCallMethod( g2antt , "EndUpdate");

1761
Is it possible to search for a bar through items only ( not including the locked items )

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2015");
_ObjectSetProperty( g2antt , "BackColorAlternate", 16448250);
_ObjectSetProperty( g2antt , "ShowLockedItems", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Find");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "int(value) = 0 ? `` : ` <fgcolor=FF0000><b>found here ` ");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ColumnsFormatLevel", "1");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 1"),"Task","1/4/2016","1/8/2016","T3");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 2"),"Task","1/5/2016","1/9/2016","T4");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(1) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T5");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T6");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FindBar(`T4`,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),33) = 255");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = h");
_ObjectCallMethod( g2antt , "EndUpdate");

1760
Is it possible to search for a bar through bottom-locked-items only

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2015");
_ObjectSetProperty( g2antt , "BackColorAlternate", 16448250);
_ObjectSetProperty( g2antt , "ShowLockedItems", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Find");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "int(value) = 0 ? `` : ` <fgcolor=FF0000><b>found here ` ");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ColumnsFormatLevel", "1");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 1"),"Task","1/4/2016","1/8/2016","T3");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 2"),"Task","1/5/2016","1/9/2016","T4");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(1) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T5");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T6");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FindBar(`T6`,-4)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),33) = 255");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = h");
_ObjectCallMethod( g2antt , "EndUpdate");

1759
Is it possible to search for a bar through top-locked-items only

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2015");
_ObjectSetProperty( g2antt , "BackColorAlternate", 16448250);
_ObjectSetProperty( g2antt , "ShowLockedItems", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Find");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "int(value) = 0 ? `` : ` <fgcolor=FF0000><b>found here ` ");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ColumnsFormatLevel", "1");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 1"),"Task","1/4/2016","1/8/2016","T3");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 2"),"Task","1/5/2016","1/9/2016","T4");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(1) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T5");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T6");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FindBar(`T1`,-3)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),33) = 255");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = h");
_ObjectCallMethod( g2antt , "EndUpdate");

1758
Is it possible to search for a bar through all locked-items only

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2015");
_ObjectSetProperty( g2antt , "BackColorAlternate", 16448250);
_ObjectSetProperty( g2antt , "ShowLockedItems", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Find");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "int(value) = 0 ? `` : ` <fgcolor=FF0000><b>found here ` ");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ColumnsFormatLevel", "1");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 1"),"Task","1/4/2016","1/8/2016","T3");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 2"),"Task","1/5/2016","1/9/2016","T4");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(1) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T5");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T6");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FindBar(`T2`,-2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),33) = 255");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = h");
_ObjectCallMethod( g2antt , "EndUpdate");

1757
Is it possible to search for a bar through all items ( including locked items )

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Debug", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2015");
_ObjectSetProperty( g2antt , "BackColorAlternate", 16448250);
_ObjectSetProperty( g2antt , "ShowLockedItems", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Find");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "int(value) = 0 ? `` : ` <fgcolor=FF0000><b>found here ` ");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ColumnsFormatLevel", "1");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-top 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 1"),"Task","1/4/2016","1/8/2016","T3");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "un-locked item 2"),"Task","1/5/2016","1/9/2016","T4");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(1) = 3");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(h) = 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 1`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2016","1/8/2016","T5");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(1,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,0) = `locked-bottom 2`");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2016","1/9/2016","T6");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FindBar(`T5`,-1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,FirstItemBar(h),33) = 255");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = h");
_ObjectCallMethod( g2antt , "EndUpdate");

1756
How do I clip/hide/align the bar's caption/text based on the bar's size/width/length

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Clip");
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowResizeChart", 6);
	_ObjectSetProperty( chart , "DrawGridLines", -2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/23/2000");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 216");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 32);
		_ObjectSetProperty( bar , "Color", 10790052);
		_ObjectSetProperty( bar , "StartColor", 15790320);
		_ObjectSetProperty( bar , "EndColor", _ObjectGetProperty( bar , "StartColor"));
		_ObjectSetProperty( bar , "OverlaidType", 4611);
		_ObjectSetProperty( bar , "Height", 15);
	_ObjectSetProperty( chart , "MinUnitWidth", _ObjectGetProperty( chart , "UnitWidth"));
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "no clip, (0-2)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","K1","no clip, right(<b>2</b>)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,4) = 2");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","K2","no clip, center(<b>1</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,4) = 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/4/2001","K3","no clip, left(<b>0</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,4) = 0");
	h = _ObjectCallMethod( items , "AddItem", "clip, inside (3-5)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K1","clip, inside, right(<b>5</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,4) = 5");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K2","clip, inside, center(<b>4</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,4) = 4");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K3","clip, inside, left(<b>3</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,4) = 3");
	h = _ObjectCallMethod( items , "AddItem", "hide on min width, clip if not fit, inside (6-8)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/26/2000","1/10/2001","K1","hide on min width, clip if not fit, inside, right(<b>8</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,4) = 8");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/26/2000","1/10/2001","K2","hide on min width, clip if not fit, inside, center(<b>7</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,4) = 7");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/26/2000","1/10/2001","K3","hide on min width, clip if not fit, inside, left(<b>6</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,4) = 6");
	h = _ObjectCallMethod( items , "AddItem", "hide if not fit, no clip, inside (9-11)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K1","hide if not fit, no clip, inside, right(<b>11</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,4) = 11");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K2","hide if not fit, no clip, center(<b>10</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,4) = 10");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K3","hide if not fit, no clip, inside, left(<b>9</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,4) = 9");
	h = _ObjectCallMethod( items , "AddItem", "no clip, inside, outside (12-14)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K1","no clip, inside, outside, right(<b>14</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,4) = 14");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K2","no clip, inside, outside, center(<b>13</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,4) = 13");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/28/2000","1/8/2001","K3","no clip, inside, outside, left(<b>12</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,4) = 12");
	h = _ObjectCallMethod( items , "AddItem", "no clip, outside (16-18)");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/30/2000","1/6/2001","K1","no clip, outside, right(<b>18</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,4) = 18");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/30/2000","1/6/2001","K2","no clip, outside, center(<b>17</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,4) = 17");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/30/2000","1/6/2001","K3","no clip, outside, left(<b>16</b>)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K3`,4) = 16");
_ObjectCallMethod( g2antt , "EndUpdate");

1755
Is there a way to prevent the automatic horizontal scrolling of the chart when moving or resizing a bar (method 2)
// DateChange event - Occurs when the first visible date is changed.
FUNCTION g2anttEvents_DateChange()
	_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/2/2001");
END

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/2/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", "1[bg=12500670]:52,|,2[bg=12500670]:52");
	_ObjectSetProperty( chart , "ColumnsTransparent", 50);
	_ObjectSetProperty( chart , "ScrollBar", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2001","1/7/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1754
Is there a way to prevent the automatic horizontal scrolling of the chart when moving or resizing a bar, including limiting the bars
// BarResizing event - Occurs when a bar is moving or resizing.
FUNCTION g2anttEvents_BarResizing(OBJECT g2antt, INT Item, VARIANT Key)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item,Key")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "TemplatePut", Key)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(Item,Key,22) = #1/1/2001#");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(Item,Key,25) = #2/1/2001#");
END

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/2/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", "1[bg=12500670]:52,|,2[bg=12500670]:52");
	_ObjectSetProperty( chart , "ColumnsTransparent", 50);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.ScrollRange(0) = #1/1/2001#");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.ScrollRange(1) = #1/31/2001#");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2001","1/7/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1753
Is there a way to prevent the automatic horizontal scrolling of the chart when moving or resizing a bar (method 1)
OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/2/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", "1[bg=12500670]:52,|,2[bg=12500670]:52");
	_ObjectSetProperty( chart , "ColumnsTransparent", 50);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.ScrollRange(0) = #1/1/2001#");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.ScrollRange(1) = #1/31/2001#");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2001","1/7/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1752
Is it possible to have "Preview Window" as a "Modal Window or 'always-on-top window'"
OBJECT createobject("exontrol.print"),g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/1/2001");
items = _ObjectGetProperty( g2antt , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/5/2001","1/7/2001","K2");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,6) = 0");
_ObjectCallMethod( g2antt , "EndUpdate");
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	Message( _ObjectGetProperty( createobject("exontrol.print") , "Version") );
	_ObjectSetProperty( createobject("exontrol.print") , "Foreground", -1);
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", g2antt);
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

1751
The week number is not correct (wrong). What can I do

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstWeekDay", _ObjectGetProperty( chart , "LocFirstWeekDay"));
	_ObjectSetProperty( chart , "MonthNames", _ObjectGetProperty( chart , "LocMonthNames"));
	_ObjectSetProperty( chart , "WeekDays", _ObjectGetProperty( chart , "LocWeekDays"));
	_ObjectSetProperty( chart , "AMPM", _ObjectGetProperty( chart , "LocAMPM"));
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "UnitScale", 256);
	_ObjectSetProperty( chart , "UnitWidth", 32);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2016");
	_ObjectSetProperty( chart , "AdjustLevelsToBase", -1);
	_ObjectSetProperty( chart , "WeekNumberAs", 0);
	_ObjectSetProperty( chart , "ShowNonworkingDates", 0);
	_ObjectCallMethod( chart , "ScrollTo", _ObjectGetProperty( chart , "FirstVisibleDate"),1);

1750
When the user zooms with the mouse, the chart automatically switches the unit scale - ideally I'd like to replicate this so I can switch the unitscale at the same "zoom levels" that the mouse zooming does - is this possible
// ChartEndChanging event - Occurs after the chart has been changed.
FUNCTION g2anttEvents_ChartEndChanging(OBJECT g2antt, INT Operation)
	OBJECT chart;
	chart = _ObjectGetProperty( g2antt , "Chart");
		Message( "FirstVisibleDate" );
		Message( _ObjectGetProperty( chart , "FirstVisibleDate") );
		Message( "UnitScale" );
		Message( _ObjectGetProperty( chart , "UnitScale") );
		Message( "UnitWidth" );
		Message( _ObjectGetProperty( chart , "UnitWidth") );
END

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 3);
	_ObjectSetProperty( chart , "AllowResizeChart", 262);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "MarkTodayColor", _ObjectGetProperty( chart , "BackColor"));
_ObjectCallMethod( g2antt , "EndUpdate");

1749
The first week number is not correctly assigned. What can I do

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2016");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstWeekDay", 1);
	_ObjectSetProperty( chart , "UnitScale", 256);
	_ObjectCallMethod( chart , "ScrollTo", _ObjectGetProperty( chart , "FirstVisibleDate"),1);
	_ObjectSetProperty( chart , "DrawGridLines", -1);
	_ObjectSetProperty( chart , "AdjustLevelsToBase", -1);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0).Label = `<c><%mmmm%>`");

1748
How can I display the +/- expand - collapse buttons, a bit larger

OBJECT appearance,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 3,"c:\exontrol\images\normal.ebn");
	_ObjectCallMethod( appearance , "Add", 4,"c:\exontrol\images\pushed.ebn");
	_ObjectCallMethod( appearance , "Add", 1,"CP:3 -4 -4 4 4");
	_ObjectCallMethod( appearance , "Add", 2,"CP:4 -4 -4 4 4");
_ObjectSetProperty( g2antt , "LinesAtRoot", 1);
_ObjectSetProperty( g2antt , "HasButtons", 4);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "HasButtonsCustom(0) = 16777216");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "HasButtonsCustom(1) = 33554432");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child");
_ObjectCallMethod( g2antt , "EndUpdate");

1747
Is there any option to control where I can drop the items when using the AutoDrag property
// AllowAutoDrag event - Occurs when the user drags the item between InsertA and InsertB as child of NewParent.
FUNCTION g2anttEvents_AllowAutoDrag(OBJECT g2antt, INT Item, INT NewParent, INT InsertA, INT InsertB, INT Cancel)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,NewParent")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", NewParent)
		Message( "NewParent" );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(NewParent,0)") );
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,InsertA")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", InsertA)
		Message( "After" );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(InsertA,0)") );
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,InsertB")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", InsertB)
		Message( "Before" );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(InsertB,0)") );
	Cancel = -1;
END

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AutoDrag", 3);
_ObjectSetProperty( g2antt , "LinesAtRoot", 0);
_ObjectSetProperty( g2antt , "HasLines", 2);
_ObjectSetProperty( g2antt , "ShowFocusRect", 0);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "ShowNonworkingDates", 0);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/29/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "LevelCount", 2);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Group 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2001","1/4/2001","K1");
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	_ObjectCallMethod( items , "AddBar", h2,"Task","1/5/2001","1/7/2001","K2");
	_ObjectCallMethod( items , "AddLink", "L1",h1,"K1",h2,"K2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,12) = `L1`");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod( items , "AddBar", h3,"Task","1/8/2001","1/10/2001","K3");
	_ObjectCallMethod( items , "AddLink", "L2",h2,"K2",h3,"K3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L2`,12) = `L2`");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Group 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
_ObjectCallMethod( g2antt , "EndUpdate");

1746
The column (chart section ) overlaps the bars, when using the ColumnsFormatLevel property. How can I prevent that

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/2/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", "1[bg=12500670]:52,|,2[bg=12500670]:52");
	_ObjectSetProperty( chart , "ColumnsTransparent", 50);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2001","1/7/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1745
How do I show the column ( chart section ) with a different background color, when using the ColumnsFormatLevel property (method 2)

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/2/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", "1[bg=12500670]:52,|,2[bg=12500670]:52");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2001","1/7/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1744
How do I show the column ( chart section ) with a different background color, when using the ColumnsFormatLevel property (method 1)

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 0);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(4) = 12500670");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "Alignment", 2);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(4) = 12500670");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2000");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", "1:52,|,2:52");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2001","1/7/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1743
How can I display the control's content on an single A3 paper size, when using PDF format

OBJECT bar,chart,g2antt,items,note,notes;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/24/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "UnitScale", 4096);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 1);
		_ObjectSetProperty( bar , "Color", 0);
		_ObjectSetProperty( bar , "Height", 16);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/25/2000","1/5/2001","1","<fgcolor=FFFFFF>Center");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`1`,44) = `left`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`1`,45) = 16");
	h = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2001","1/16/2001","1","<fgcolor=FFFFFF>Center");
	h = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/16/2001","1/26/2001","2","Center");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`2`,44) = `right`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`2`,45) = 18");
notes = _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Notes");
	note = _ObjectCallMethod( notes , "Add", "1S",_ObjectCallMethod(g2antt, "ExecuteTemplate", ".Items.ItemByIndex(1)"),"1","<%m3%>-<%d%>");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim notObj")
		_ObjectCallMethod(g2antt, "TemplatePut", note)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartShadow(1) = False");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartHOffset(1) = -16");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartVOffset(1) = 4");
	note = _ObjectCallMethod( notes , "Add", "1F",_ObjectCallMethod(g2antt, "ExecuteTemplate", ".Items.ItemByIndex(1)"),"1","<%m3%>-<%d%>");
		_ObjectSetProperty( note , "RelativePosition", 1);
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartShadow(1) = False");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartHOffset(1) = 16");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartVOffset(1) = -4");
var_CopyTo = _ObjectCallMethod(g2antt, "ExecuteTemplate", "CopyTo(`C:\Temp\Preview.pdf|11.69 in x 16.53 in||single`)");
Message( "Look for C:\Temp\Preview.pd file." );
_ObjectCallMethod( g2antt , "EndUpdate");

1742
How can I display the control's content on an A3 paper size, when using PDF format

OBJECT bar,chart,g2antt,items,note,notes;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( g2antt , "AntiAliasing", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/24/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "UnitScale", 4096);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 1);
		_ObjectSetProperty( bar , "Color", 0);
		_ObjectSetProperty( bar , "Height", 16);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/25/2000","1/5/2001","1","<fgcolor=FFFFFF>Center");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`1`,44) = `left`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`1`,45) = 16");
	h = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2001","1/16/2001","1","<fgcolor=FFFFFF>Center");
	h = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/16/2001","1/26/2001","2","Center");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`2`,44) = `right`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`2`,45) = 18");
notes = _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Notes");
	note = _ObjectCallMethod( notes , "Add", "1S",_ObjectCallMethod(g2antt, "ExecuteTemplate", ".Items.ItemByIndex(1)"),"1","<%m3%>-<%d%>");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim notObj")
		_ObjectCallMethod(g2antt, "TemplatePut", note)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartShadow(1) = False");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartHOffset(1) = -16");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartVOffset(1) = 4");
	note = _ObjectCallMethod( notes , "Add", "1F",_ObjectCallMethod(g2antt, "ExecuteTemplate", ".Items.ItemByIndex(1)"),"1","<%m3%>-<%d%>");
		_ObjectSetProperty( note , "RelativePosition", 1);
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartShadow(1) = False");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartHOffset(1) = 16");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartVOffset(1) = -4");
var_CopyTo = _ObjectCallMethod(g2antt, "ExecuteTemplate", "CopyTo(`C:\Temp\Preview.pdf|11.69 in x 16.53 in`)");
Message( "Look for C:\Temp\Preview.pd file." );
_ObjectCallMethod( g2antt , "EndUpdate");

1741
How can I specify the grouping strategy, ie numbers from 1 to 5 are given the value (1-5) and grouping is done on this new value

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(Item) = True");
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,1)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

OBJECT chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "MarkSearchColumn", 0);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	column = _ObjectCallMethod( columns , "Add", "Start");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
	column = _ObjectCallMethod( columns , "Add", "End");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 256");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "1"),"Task","9/21/2006","9/27/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "1"),"Task","9/22/2006","9/28/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "2"),"Task","9/22/2006","9/28/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "2"),"Task","9/23/2006","9/29/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "3"),"Task","9/25/2006","9/29/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "3"),"Task","9/26/2006","9/30/2006");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks - Group");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "%0 in (1,2) ? `1 - 2` : `3 -`");
	_ObjectSetProperty( column , "SortOrder", 1);
_ObjectCallMethod( g2antt , "EndUpdate");

1740
How can I filter the chart and its content, not the items section

// RClick event - Fired when right mouse button is clicked
FUNCTION g2anttEvents_RClick()
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(`Start`).ShowFilter(`-1,-1,128,128`)");
END

OBJECT chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "MarkSearchColumn", 0);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	column = _ObjectCallMethod( columns , "Add", "Start");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
		_ObjectSetProperty( column , "DisplayFilterDate", -1);
		_ObjectSetProperty( column , "DisplayFilterPattern", 0);
		_ObjectSetProperty( column , "FilterList", 8448);
		_ObjectSetProperty( column , "Visible", 0);
	column = _ObjectCallMethod( columns , "Add", "End");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
		_ObjectSetProperty( column , "DisplayFilterDate", -1);
		_ObjectSetProperty( column , "DisplayFilterPattern", 0);
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectSetProperty( column , "FilterList", 8448);
		_ObjectSetProperty( column , "Visible", 0);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 128");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","9/21/2006","9/27/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","9/22/2006","9/28/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 3"),"Task","9/22/2006","9/28/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 4"),"Task","9/23/2006","9/29/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 5"),"Task","9/25/2006","9/29/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 6"),"Task","9/26/2006","9/30/2006");
_ObjectCallMethod( g2antt , "EndUpdate");

1739
How do I enable the Group-By feature

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(Item) = 15790320");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Me.Chart.ItemBackColor(Item) = 15790320");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLine(Item) = 0");
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,1)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

OBJECT chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "MarkSearchColumn", 0);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	column = _ObjectCallMethod( columns , "Add", "Start");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
	column = _ObjectCallMethod( columns , "Add", "End");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 256");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","9/21/2006","9/27/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","9/22/2006","9/28/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","9/22/2006","9/28/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","9/23/2006","9/29/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 3"),"Task","9/25/2006","9/29/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 3"),"Task","9/26/2006","9/30/2006");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1738
Is there any method to know number/length/count/duration of working days in a bar ( excluding non-working days)

// SelectionChanged event - Fired after a new item has been selected.
FUNCTION g2anttEvents_SelectionChanged()
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(FocusItem,0)") );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(FocusItem,``,258)") );
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SelBackColor", 16760462);
_ObjectSetProperty( g2antt , "SelForeColor", 0);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2002");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "Task:Split");
		_ObjectSetProperty( bar , "Shortcut", "Task");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%258%><font ;6><off 3>w/units`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
	_ObjectSetProperty( chart , "SelBackColor", _ObjectGetProperty( g2antt , "SelBackColor"));
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task A");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2002","1/9/2002");
	h = _ObjectCallMethod( items , "AddItem", "Task B");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/3/2002","1/8/2002");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Task C");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/4/2002","1/5/2002");
_ObjectCallMethod( g2antt , "EndUpdate");

1737
How do i verify weather specified unit is Nonworking Working Unit

// MouseMove event - Occurs when the user moves the mouse.
FUNCTION g2anttEvents_MouseMove(OBJECT g2antt, INT Button, INT Shift, INT X, INT Y)
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim _ObObj")
	_ObjectCallMethod(g2antt, "TemplatePut", _ObjectGetProperty( g2antt , "Chart"))
	d = _ObjectCallMethod(g2antt, "ExecuteTemplate", "_ObObj.DateFromPoint(-1,-1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim _ObObj,d,h")
	_ObjectCallMethod(g2antt, "TemplatePut", _ObjectGetProperty( g2antt , "Chart"))
	_ObjectCallMethod(g2antt, "TemplatePut", d)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	Message( d );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "_ObObj.IsNonworkingDate(d,h)") );
END

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "NonWorking");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstWeekDay", 1);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/24/2008");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 64");
	_ObjectSetProperty( chart , "LevelCount", 2);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Default");
	h = _ObjectCallMethod( items , "AddItem", "January");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemNonworkingUnits(h,False) = `month(value) = 1`");
	h = _ObjectCallMethod( items , "AddItem", "February, Saturday, Sunday");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemNonworkingUnits(h,False) = `month(value) = 2 or (weekday(value) = 0 or weekday(value) = 6)`");
	h = _ObjectCallMethod( items , "AddItem", "Sunday");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemNonworkingUnits(h,False) = `weekday(value) = 0`");
_ObjectCallMethod( g2antt , "EndUpdate");

1736
How can I specify the bar's caption to be caption from a column/cell

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT bar,chart,editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 64");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<fgcolor=808080><%=%C0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectCallMethod( editor , "AddItem", 1,"Aka");
	_ObjectCallMethod( editor , "AddItem", 2,"Baka");
	_ObjectCallMethod( editor , "AddItem", 3,"Taka");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", 1),"Task","1/2/2001","1/5/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", 2),"Task","1/3/2001","1/6/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", 3),"Task","1/4/2001","1/7/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1735
The histogram values displayed on the chart are using 2 decimal places. Can this be formated to just 0 decimal place, so 86.79% becomes 87%

OBJECT bar,chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Effort");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 21");
	_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 4);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "FirstVisibleDate", "6/20/2005");
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	_ObjectSetProperty( chart , "HistogramHeight", 128);
	_ObjectSetProperty( chart , "HistogramView", 112);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "HistogramPattern", _ObjectGetProperty( bar , "Pattern"));
		_ObjectSetProperty( bar , "HistogramType", 0);
		_ObjectSetProperty( bar , "HistogramCriticalValue", 3);
		_ObjectSetProperty( bar , "ShowHistogramValues", "value>3?255:1");
		_ObjectSetProperty( bar , "HistogramItems", -11);
		_ObjectSetProperty( bar , "HistogramGridLinesColor", 12632256);
		_ObjectSetProperty( bar , "HistogramRulerLinesColor", 65536);
		_ObjectSetProperty( bar , "FormatHistogramValues", "(value format `0`) + ` units`");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","6/21/2005","6/23/2005");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h1)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = 6.79");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h1,"Task","6/24/2005","6/26/2005");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = 3.19");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h1,"Task","6/27/2005","6/29/2005");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = 2");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 4");
	_ObjectCallMethod( items , "AddBar", h1,"Task","6/30/2005","7/2/2005");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1734
How can I create a relative time-scale

OBJECT bar,chart,g2antt,items,level;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
_ObjectSetProperty( g2antt , "HeaderHeight", _ObjectGetProperty( g2antt , "DefaultItemHeight"));
_ObjectSetProperty( g2antt , "GridLineStyle", 48);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "LinesAtRoot", 0);
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "DrawGridLines", -1);
	_ObjectSetProperty( chart , "GridLineStyle", 48);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", 0);
	_ObjectSetProperty( chart , "NonworkingDays", 0);
	_ObjectSetProperty( chart , "UnitWidth", 36);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0)");
		_ObjectSetProperty( level , "Unit", 4096);
		_ObjectSetProperty( level , "Count", 6);
		_ObjectSetProperty( level , "Alignment", 1);
		_ObjectSetProperty( level , "Label", "<%i%>");
		_ObjectSetProperty( level , "FormatLabel", "'<b>' + ( (value / 6)  array ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec') ) + '-16'");
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(1)");
		_ObjectSetProperty( level , "Label", "<%i%>");
		_ObjectSetProperty( level , "FormatLabel", "1 + value mod 6 + ` `");
		_ObjectSetProperty( level , "Alignment", 2);
	_ObjectSetProperty( chart , "AdjustLevelsToBase", -1);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.ScrollRange(0) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.ScrollRange(1) = 95");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Height", 15);
		_ObjectSetProperty( bar , "Color", 11851260);
		_ObjectSetProperty( bar , "Pattern", 1);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `date blocking`");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Company");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "ABC Company");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(h) = 15790320");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Me.Chart.ItemBackColor(h) = 15790320");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","line 1");
	_ObjectCallMethod( items , "AddBar", hChild,"Task",0,3);
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","line 2");
	_ObjectCallMethod( items , "AddBar", hChild,"Task",3,5,"A");
	_ObjectCallMethod( items , "AddBar", hChild,"Task",7,10,"B");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","line 3");
	_ObjectCallMethod( items , "AddBar", hChild,"Task",5,8,"A");
	_ObjectCallMethod( items , "AddBar", hChild,"Task",9,12,"B");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

1733
Extending the bar's visual appearance with additional objects, EBNs, using the exBarBackgroundExt and exBarBackgroundExtInflate

OBJECT appearance,bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 32);
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAADhABcMIQAAYAQGKIYBkAKBQAGaAoDDUMQyQwAAyDAK8EwsACEIrAAJoaAAPoJRDGMTvfIgARIf6MIRAeCYFDAJQtDCMICwSKsXBaGwBJYGGaYE" +
	"DGHQATxKM7wGBcEyLDSgXZDQRAAoqTI/SICEIlAZJRjoOo5DJGGQmChkQhNVzGQzQSJFDTNAaEAwidDJCoOGgkBw7NwXFaNZznBK7LpvK5HNrie55XzAcj3dbmAYJQzB" +
	"JLxKSIDwCd6NXrCOJ5HhWDzjQjJMozLC8YiPG6fZRbeT4ToGNdXYhJWiyLiFeYtVzSMj1fD9Ir/EakbLtey4Lq2A53RzdHThSQpCwPA4BgIA=");
	_ObjectCallMethod( appearance , "Add", 2,"gBFLBCJwBAEHhEJAADhABcMIQAAYAQGKIYBkAKBQAGaAoDDUMQyQwAAyDAK8EwsACEIrAAJoaAAPoJRDGMTvfIgARIf6MIRAeCYFDAJQtDCMICwSKsXBaGwBJYGGaYE" +
	"DGHQATxKM7wGBcEyLDSgXZDQRAAoqTI/SICEIlAZJRjoOo5DJGGQmChkQhNVzGQzQSJFDTNAaEAwidDJCoOGgkBw7NrXHZ9YwTOC5IDke67cr2J53XZAd4QTb2Cz7QC8" +
	"QAvDA7awafM1MSuHIcOw/AqTYDkTq4XjODYhTDEc4zPLcFx/I6haBoWCSLi+T5VVrRMo1TKtRxnNaubZqO5aRrGe5NW6EXThSQpCr+f4BgIA=");
	_ObjectCallMethod( appearance , "Add", 3,"gBFLBCJwBAEHhEJAADhABcMIQAAYAQGKIYBkAKBQAGaAoDDUMQyQwAAyDAK8EwsACEIrAAJoaAAPoJRDGMTvfIgARIf6MIRAeCYFDAJQtDCMICwSKsXBaGwBJYGGaYE" +
	"DGHQATxKM7wGBcEyLDSgXZDQRAAoqTI/SICEIlAZJRjoOo5DJGGQmChkQhNVzGQzQSJFDTNAaEAwidDJCoOGgkBw7NwXFaNZznBK7LpvK5HNrie55XxfV6YBa8B4JPaE" +
	"ZLwLB7dwaf6IQLiWLYHiAAYZRKTcxlDI8AwvFaaZjnWA5ZaOMZBU7RNRyHR9IyTDaWaTqeqbHIuJ4FUzaNY2fZrOz2F6FAA6cKSFIWFYVAMBA");
	_ObjectCallMethod( appearance , "Add", 4,"gBFLBCJwBAEHhEJAADhABb8IQAAYAQGKIYBkAKBQAGaAoDDUMQyQwAAyDAK8EwsACEIrAAJoaAAPoJRDGMTvfIgARIf6MIRAeCYFDAJQtDCMICwSKsXBaGwBJYGGaYE" +
	"DGHQATxKM7wGBcEyLDSgXZDQRAAoqTI/SICEIlAZJRjoOo5DJGGQmChkQhNVzGQzQSJFDTNAaEAwidDJCoOGgkBw7NwXFaNZznBK7LpvK5HNrie55XxfV6YBa8B4JPaE" +
	"ZLwLB7dwaf6IQLiWLYHiAAYBIbJI5yeb5Hx3HqfZjbeSxVoML43SzHcByGRcTwzC6pYjrGoZJpWZ4ZQrbNR3DZ8VzzNTrQxIUhYVhUAkB");
	_ObjectSetProperty( appearance , "RenderType", -16777216);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 164");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "NonworkingDaysColor", 15790320);
	_ObjectSetProperty( chart , "NonworkingDaysPattern", 6);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Height", 17);
		_ObjectSetProperty( bar , "Color", 16777215);
		_ObjectSetProperty( bar , "Pattern", 1);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(51) = 1");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","1/2/2001","1/6/2001","");
	h = _ObjectCallMethod( items , "AddItem", "Task+Rhombus(red)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/7/2001","");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(100%-11,50%-6,11,11),back=0x10000FF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `,,5`");
	h = _ObjectCallMethod( items , "AddItem", "Rhombus(red)+Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/8/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(0,50%-6,11,11),back=0x10000FF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `-5`");
	h = _ObjectCallMethod( items , "AddItem", "Task(yellow)+Rhombus(blue)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/9/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(100%-11,50%-6,11,11),back=0x1FF0000]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `,,5`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 65535");
	h = _ObjectCallMethod( items , "AddItem", "Rhombus(blue)+Task(yellow)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/8/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(0,50%-6,11,11),back=0x1FF0000]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `-5`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 65535");
	h = _ObjectCallMethod( items , "AddItem", "TriangleUp(white)+Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/7/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(0,50%-6,11,11),back=0x2FFFFFF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `-5`");
	h = _ObjectCallMethod( items , "AddItem", "TriangleUp(blue)+Task(magenta)+TriangleDown(red)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(0,50%-6,11,11),back=0x02FF0000],none[(100%-11,50%-6,11,11),back=0x030000FF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `-5,0,5,0`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 16744703");
	h = _ObjectCallMethod( items , "AddItem", "Rhombus+Task+TriangleDown");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/7/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(0,50%-6,11,11),back=0x01FF0000],none[(100%-11,50%-6,11,11),back=0x030000FF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `-5, 0,5,0`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 16744448");
	h = _ObjectCallMethod( items , "AddItem", "Rhombus+Task+TriangleDown");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/8/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(50%-6,0,11,11),back=0x01FF0000],none[(50%-6,100%-11,11,11),back=0x010000FF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `0,-5,0,5`");
	h = _ObjectCallMethod( items , "AddItem", "Task+Star");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/9/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(100%-11,0,11,11),back=0x4FFFFFF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = 5");
	h = _ObjectCallMethod( items , "AddItem", "Star+Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/8/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(0,100%-11,11,11),back=0x04FFFFFF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = 5");
	h = _ObjectCallMethod( items , "AddItem", "Task+Star");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/7/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `none[(100%-11,0,11,11),back=0x4FFFFFF]`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,55) = `0,-6,14`");
_ObjectCallMethod( g2antt , "EndUpdate");

1732
I am using the ItemBar(exBarFrameColor) to display an additional EBN on the current bar. The problem is that I still need a black frame around the bar. How can I achieve that

OBJECT appearance,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAADhABXMIQAAYAQGKIYBkAKBQAGaAoDDWDoMAANAyjPBMKgBBCLAACaKQAD6CYQRhFT7yGAERr/C6EQLhGBRQCULQxDCBMIjLJoWhsASVRhnCBBR" +
	"hwAI7ShPUBgXBNCQzICTJJkSJZBiECIJFAaJhnIapZDKGKQWCjAgiNpqGQ2QiKFC2HAcEAxCxGJBoKKZGq2bpJQLbdxUXRVZzpNi7Louay5CrOCZvXxaeAXDa+Az5ODD" +
	"MRwLBcKhzCKDYzfdrZFaWFT3Qi8aCvG6sbw/HZ0OrEEIwCEBA");
	_ObjectCallMethod( appearance , "Add", 2,"CP:1 0 0 5 0");
	_ObjectCallMethod( appearance , "Add", 3,"gBFLBCJwBAEHhEJAADhABUEIQAAYAQGKIYBkAKBQAGaAoDDWDoMAANAyjPBMKgBBCLIxhEYobgmGIaRiBMIxAKIZhzEgYRoiAYhXDiHwxARHUgRfIEOwHDiBZomWKZE" +
	"iaKIqRrLMryFLMZx3CqcAApGaqHiOCYlSbTcoyfJYZBzD6mKJpWipWheW48U7PVRDJSkNysASZIyrGKqJouX4WR7BcZgNR4YBgEoWRouSBLWrgNIVR6/eBABZFPzbNK3" +
	"ZzdOIIJgEgIA=");
	_ObjectSetProperty( appearance , "RenderType", -16777216);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 164");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Color = 67043328");
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","NewTask") , "Height", 15);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod( items , "AddBar", h,"NewTask","1/8/2001","1/12/2001","new");
	h = _ObjectCallMethod( items , "AddItem", "Task+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554432");
	_ObjectCallMethod( items , "AddBar", h,"NewTask","1/8/2001","1/12/2001","new");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`new`,51) = 33554432");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554687");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 65280");
	_ObjectCallMethod( items , "AddBar", h,"NewTask","1/8/2001","1/12/2001","new");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`new`,51) = 33554687");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`new`,33) = 65280");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus/Color");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33619712");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 16711935");
	_ObjectCallMethod( items , "AddBar", h,"NewTask","1/8/2001","1/12/2001","new");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`new`,51) = 33619712");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`new`,33) = 16711935");
_ObjectCallMethod( g2antt , "EndUpdate");

1731
I am using EBN objects to show my bars, but when apply a color to the EBN looks darker. Is it possible to get the same color brightness

OBJECT appearance,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAADhABWkIQAAYAQGKIYBkAKBQAGaAoDDWDoMAANAyjPBMKgBBCLAACaKQAD6CYQRhFT7yGAERr/C6EZBGABYJDUMAlCyNQBQSKIYxnAgYY4ACZ5I" +
	"jqAwLQjQEYzZI0SxJCqQZBBCCSQKkYx0HScRijDILBQwIQmaqjEZoJCiQZfQLCAYRMhkQx9DKTLRtKhYDqubpHUZbdwWRaVYTlM6RLbhGy7YqefJtXLfN4WZgWCz9QLD" +
	"I4wS78JruaqOW5hVz4BasfTrOzLcTzG4HLhCCYBgI");
	_ObjectCallMethod( appearance , "Add", 2,"CP:1 -6 0 0 0");
	_ObjectSetProperty( appearance , "RenderType", -16777216);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 164");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	h = _ObjectCallMethod( items , "AddItem", "Task+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554432");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554687");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 65280");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus/Color");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33619712");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 16711935");
_ObjectCallMethod( g2antt , "EndUpdate");

1730
The ItemBar(exBarColor) changes the color for margins, and there is no exBarStartColor/exBarEndColor. However in my case I would then like do dynamically change the bar color to a different color without changing the start shape color

OBJECT appearance,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAADhABWkIQAAYAQGKIYBkAKBQAGaAoDDWDoMAANAyjPBMKgBBCLAACaKQAD6CYQRhFT7yGAERr/C6EZBGABYJDUMAlCyNQBQSKIYxnAgYY4ACZ5I" +
	"jqAwLQjQEYzZI0SxJCqQZBBCCSQKkYx0HScRijDILBQwIQmaqjEZoJCiQZfQLCAYRMhkQx9DKTLRtKhYDqubpHUZbdwWRaVYTlM6RLbhGy7YqefJtXLfN4WZgWCz9QLD" +
	"I4wS78JruaqOW5hVz4BasfTrOzLcTzG4HLhCCYBgI");
	_ObjectCallMethod( appearance , "Add", 2,"CP:1 -6 0 0 0");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 164");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	h = _ObjectCallMethod( items , "AddItem", "Task+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554432");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554432");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 65280");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus/Color");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33619712");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 16711935");
_ObjectCallMethod( g2antt , "EndUpdate");

1729
The ItemBar(exBarColor) changes the color for margins, and there is no exBarStartColor/exBarEndColor. However in my case I would then like do dynamically change the bar color to a different color without changing the end shape color

OBJECT appearance,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAADhABXMIQAAYAQGKIYBkAKBQAGaAoDDWDoMAANAyjPBMKgBBCLAACaKQAD6CYQRhFT7yGAERr/C6EQLhGBRQCULQxDCBMIjLJoWhsASVRhnCBBR" +
	"hwAI7ShPUBgXBNCQzICTJJkSJZBiECIJFAaJhnIapZDKGKQWCjAgiNpqGQ2QiKFC2HAcEAxCxGJBoKKZGq2bpJQLbdxUXRVZzpNi7Louay5CrOCZvXxaeAXDa+Az5ODD" +
	"MRwLBcKhzCKDYzfdrZFaWFT3Qi8aCvG6sbw/HZ0OrEEIwCEBA");
	_ObjectCallMethod( appearance , "Add", 2,"CP:1 0 0 6 0");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 164");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	h = _ObjectCallMethod( items , "AddItem", "Task+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554432");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33554432");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 65280");
	h = _ObjectCallMethod( items , "AddItem", "Task/Color+Rhombus/Color");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,51) = 33619712");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 16711935");
_ObjectCallMethod( g2antt , "EndUpdate");

1728
Is it possible to resize a column with the mouse without changing the width of the next column

OBJECT g2antt;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column 1") , "Width", 256);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column 2") , "Width", 512);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectCallMethod( g2antt , "EndUpdate");

1727
How can I align captions of items with checkbox, with items with no checkbox

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellImages(AddItem(0),0) = `1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellHasCheckBox(AddItem(1),0) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellImages(AddItem(2),0) = `1`");
_ObjectCallMethod( g2antt , "EndUpdate");

1726
How can I show each group header ( not-subroup ), with a different background color, while alternate background colors for inside items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(0:= (1 rpos '')) right ( ( 1:= ( =:0 rfind `.` ) ) != -1 ? =:1 : len(=:0))");
	_ObjectSetProperty( column , "Visible", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(1 rpos '') contains '.'");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 2) != 0") , "BackColor", 15790320);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%C14 = 0") , "BackColor", 12500670);
_ObjectCallMethod( g2antt , "EndUpdate");

1725
What is the difference between %0 and %C0, when using in expressions ( format, conditional format, computed fields, and so on )

OBJECT column,editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectSetProperty( g2antt , "HeaderHeight", 24);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Add(`Value`).Def(17) = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "FormatColumn = `%0` ~ CellValue");
	_ObjectSetProperty( column , "FormatColumn", "%0");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(16) = False");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "FormatColumn = `%C0`~ CellCaption");
	_ObjectSetProperty( column , "FormatColumn", "%C0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(16) = False");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", 1.1234);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(AddItem(`<sha ;;0>This <fgcolor=FF0000>is a <s><b>HTM</fgcolor>L</b> text</s>.`),0) = 1");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(AddItem(3))");
		_ObjectSetProperty( editor , "EditType", 6);
		_ObjectCallMethod( editor , "AddItem", 1,"Border");
		_ObjectCallMethod( editor , "AddItem", 2,"Thick");
		_ObjectCallMethod( editor , "AddItem", 4,"Shadow");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(AddItem(10000),0) = ``<b>` + currency(value)`");
_ObjectCallMethod( g2antt , "EndUpdate");

1724
How can I alternate colors for each group header ( not-subroup ), with a different background color, while items of the same group showing with a different color

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))");
	_ObjectSetProperty( column , "Visible", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(1 rpos '') contains '.'");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 2) != 0") , "BackColor", 15790320);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%C14 = 0") , "BackColor", 12500670);
_ObjectCallMethod( g2antt , "EndUpdate");

1723
How can I highlight each group header, with a different background color (method 2)

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(Item) = 12500670");
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1722
How can I highlight each group header ( not-subroup ), with a different background color (method 1)

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))");
	_ObjectSetProperty( column , "Visible", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(1 rpos '') contains '.'");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%C14 = 0") , "BackColor", 12500670);
_ObjectCallMethod( g2antt , "EndUpdate");

1721
The BackColorAlternate displays each second row with a different background color. Is it possible to apply a different background color, for each sub-tree, ConditionalFormats, Add

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

// Sort event - Fired when the control sorts a column.
FUNCTION g2anttEvents_Sort()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "P1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "PartialCheck", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "P2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "PartialCheck", -1);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C2 mod 2) != 0") , "BackColor", 15790320);
_ObjectCallMethod( g2antt , "EndUpdate");

1720
The BackColorAlternate displays each second row with a different background color. Is it possible to apply a different background color, for 2nd, 3rd, 4th, row, and so on

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "1 apos ''");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 5) = 1") , "BackColor", 8421504);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 5) = 2") , "BackColor", 10790052);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 5) = 3") , "BackColor", 12500670);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 5) = 4") , "BackColor", 15790320);
_ObjectCallMethod( g2antt , "EndUpdate");

1719
The BackColorAlternate displays each second row with a different background color. The question I have it is possible to apply a different background color for 3rd, 4th, row, and so on

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "1 apos ''");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 4) = 0") , "BackColor", 15790320);
_ObjectCallMethod( g2antt , "EndUpdate");

1718
The BackColorAlternate looks fine for flat tables, but how about using it when displaying a hierarchy/tree, like grouping rows. The sample alternate colors for each group found

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 312");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(2).Def(18) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(4).Def(18) = 2");
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 2) != 0") , "BackColor", 15790320);
_ObjectCallMethod( g2antt , "EndUpdate");

1717
How do I show the chart's labels in 24-hour clock format

OBJECT chart,g2antt,level;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 3);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0)");
		_ObjectSetProperty( level , "Label", "<%mmm%> <%d%>, <%yyyy%>");
		_ObjectSetProperty( level , "Alignment", 17);
		_ObjectSetProperty( level , "Unit", 4096);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(1)");
		_ObjectSetProperty( level , "Label", "<b><%h%>:00</b>");
		_ObjectSetProperty( level , "Alignment", 1);
		_ObjectSetProperty( level , "Unit", 65536);
		_ObjectSetProperty( level , "DrawTickLines", -1);
		_ObjectSetProperty( level , "DrawGridLines", -1);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(2)");
		_ObjectSetProperty( level , "Label", "<%nn%>");
		_ObjectSetProperty( level , "Unit", 1048576);
		_ObjectSetProperty( level , "Count", 15);
	_ObjectCallMethod( chart , "ScrollTo", "1/1/2001 8:30:00 AM",0);

1716
How do I show the chart's labels in 12-hour clock format

OBJECT chart,g2antt,level;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 3);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0)");
		_ObjectSetProperty( level , "Label", "<%mmm%> <%d%>, <%yyyy%>");
		_ObjectSetProperty( level , "Alignment", 17);
		_ObjectSetProperty( level , "Unit", 4096);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(1)");
		_ObjectSetProperty( level , "Label", "<b><%h%>:00</b> <%AM/PM%>");
		_ObjectSetProperty( level , "Alignment", 1);
		_ObjectSetProperty( level , "Unit", 65536);
		_ObjectSetProperty( level , "DrawTickLines", -1);
		_ObjectSetProperty( level , "DrawGridLines", -1);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(2)");
		_ObjectSetProperty( level , "Label", "<%nn%>");
		_ObjectSetProperty( level , "Unit", 1048576);
		_ObjectSetProperty( level , "Count", 15);
	_ObjectCallMethod( chart , "ScrollTo", "1/1/2001 8:30:00 AM",0);

1715
I would like to avoid manual typing in the date-cell because user often type wrong things (no decimal points and so on) and so the todays-date is generated for the cell. What can be done

// KeyPress event - Occurs when the user presses and releases an ANSI key.
FUNCTION g2anttEvents_KeyPress(OBJECT g2antt, INT KeyAscii)
	Message( "if .Editying != 0 then" );
	Message( _ObjectGetProperty( g2antt , "Editing") );
	KeyAscii = 0;
END

OBJECT chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	column = _ObjectCallMethod( columns , "Add", "Start");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
	column = _ObjectCallMethod( columns , "Add", "End");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "AllowLinkBars", -1);
	_ObjectSetProperty( chart , "AllowCreateBar", 0);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 196");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","9/21/2006","9/24/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","9/22/2006","9/25/2006");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 3"),"Task","9/23/2006","9/26/2006");
_ObjectCallMethod( g2antt , "EndUpdate");

1714
When a Day, Week etc is clicked how can we make it centre/zoom the chart to cover all the bars

// OverviewZoom event - Occurs once the user selects a new time scale unit in the overview zoom area.
FUNCTION g2anttEvents_OverviewZoom()
	OBJECT chart;
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectCallMethod( chart , "ScrollTo", "1/1/2001",1);
		Message( "Start" );
		Message( _ObjectGetProperty( chart , "StartPrintDate") );
		Message( "End" );
		Message( _ObjectGetProperty( chart , "EndPrintDate") );
END

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "OverviewVisible", 2);
	_ObjectSetProperty( chart , "AllowOverviewZoom", 1);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(16777216) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(1048576) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(65536) = ``");
	_ObjectSetProperty( chart , "UnitScale", 4096);
	_ObjectCallMethod( chart , "ScrollTo", "1/1/2001",1);
	_ObjectCallMethod( chart , "MarkTimeZone", "zone","1/1/2001","1/2/2001",10516548);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Item 1"),"Task","12/15/2000","1/10/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Item 2"),"Task","1/1/2001","1/5/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

1713
The first time we run the application, the day label headers looks different then pressing Week and then Day again on the control's overview part. How do we make to show the header in the same format

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "OverviewVisible", 2);
	_ObjectSetProperty( chart , "AllowOverviewZoom", 1);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(16777216) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(1048576) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(65536) = ``");
	_ObjectSetProperty( chart , "UnitScale", 4096);

1712
How to sort numerically by columns

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Numeric") , "SortType", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", 1);
	_ObjectCallMethod( items , "AddItem", 2);
	_ObjectCallMethod( items , "AddItem", 12);
	_ObjectCallMethod( items , "AddItem", 22);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1711
The control does not ensure the item to fit the control's client area once the user clicks the cell's button or check box. What can be done
// MouseDown event - Occurs when the user presses a mouse button.
FUNCTION g2anttEvents_MouseDown(OBJECT g2antt, INT Button, INT Shift, INT X, INT Y)
	' Items.EnsureVisibleItem(ItemFromPoint(-1,-1,c,hit))

END

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "TreeColumnIndex", -1);
_ObjectSetProperty( g2antt , "SelForeColor", _ObjectGetProperty( g2antt , "ForeColor"));
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Buttons");
	_ObjectSetProperty( column , "Alignment", 1);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(2) = True");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Button A");
	_ObjectCallMethod( items , "AddItem", "Button B");
	_ObjectCallMethod( items , "AddItem", "Button C");
_ObjectCallMethod( g2antt , "EndUpdate");

1710
How do I arrange the levels when the user changes the scale using the control's overview part

// OverviewZoom event - Occurs once the user selects a new time scale unit in the overview zoom area.
FUNCTION g2anttEvents_OverviewZoom()
	OBJECT chart;
	Message( _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "UnitScale") );
	_ObjectCallMethod( g2antt , "EnsureVisibleColumn", 0);
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2antt, "TemplatePut", chart)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0).DrawTickLines = 0");
		_ObjectCallMethod( chart , "ScrollTo", "11/18/2015",1);
END

OBJECT chart,g2antt,level;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "11/18/2015");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "DrawLevelSeparator", 2);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0)");
		_ObjectSetProperty( level , "Alignment", 17);
		_ObjectSetProperty( level , "DrawTickLines", 2);
		_ObjectSetProperty( level , "BackColor", _ObjectGetProperty( g2antt , "BackColor"));
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(1)");
		_ObjectSetProperty( level , "DrawTickLines", 65);
		_ObjectCallMethod( level , "DrawTickLinesFrom", 0,2);
	_ObjectSetProperty( chart , "OverviewVisible", 2);
	_ObjectSetProperty( chart , "AllowOverviewZoom", 1);
	_ObjectSetProperty( chart , "UnitWidth", 24);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(16777216) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(1048576) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(65536) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(256) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(4096) = `<|><%d%><|><%d3%>, <%m3%> <%d%>, '<%yy%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%><||><||>4096`");
	_ObjectSetProperty( chart , "UnitScale", 4096);
	_ObjectCallMethod( chart , "ScrollTo", _ObjectGetProperty( chart , "FirstVisibleDate"),1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
_ObjectCallMethod( g2antt , "EndUpdate");

1709
I am using AllowGroupBy, the question is it is possible to add summary bars for child item, when user do grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1708
I noticed that when grouping on a field, its details are always expanded. Is it possible to show collapsed by default (method 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "ShowCollapsedBars", -1);
_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectSetProperty( g2antt , "Layout", "multiplesort=^"C1:1^";collapse=^"0-9999^"");

1707
I noticed that when grouping on a field, its details are always expanded. Is it possible to show collapsed by default (method 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "EnsureVisibleColumn", 0);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Items.ExpandItem(0) = False");
_ObjectCallMethod( g2antt , "EndUpdate");

1706
I noticed that when grouping on a field, its details are always expanded. Is it possible to show collapsed by default (method 1)

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim Item")
	_ObjectCallMethod(g2antt, "TemplatePut", Item)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "Items.ExpandItem(Item) = False");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

1705
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

OBJECT g2antt,items,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectCallMethod( g2antt , "EnsureVisibleColumn", 0);
_ObjectCallMethod( g2antt , "BeginUpdate");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(RootItem(0)) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(RootItem(1)) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(RootItem(2)) = False");
_ObjectCallMethod( g2antt , "EndUpdate");

1704
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod( items , "AddBar", Item,"Task",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,2)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,4)"));
END

OBJECT g2antt,items,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "9/1/1994");
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "EnsureVisibleColumn", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(FirstVisibleItem) = False");
_ObjectCallMethod( g2antt , "EndUpdate");

1703
How can I move automatically a bar once another is moved ( non-working bars )

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "MarkSearchColumn", 0);
_ObjectSetProperty( g2antt , "OnResizeControl", 1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start") , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End") , "Visible", 0);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 64");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "Task:Split");
		_ObjectSetProperty( bar , "Shortcut", "TSplit");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(20) = True");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = #9/22/2006#");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = #10/3/2006#");
	_ObjectCallMethod( items , "AddBar", h,"Summary",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2)"));
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h,h1")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "TemplatePut", h1)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = CellValue(h,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h1)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,2) = #9/26/2006#");
	_ObjectCallMethod( items , "AddBar", h1,"TSplit",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,2)"));
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h1,h2")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h1)
	_ObjectCallMethod(g2antt, "TemplatePut", h2)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h2,1) = CellValue(h1,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h2")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h2)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h2,2) = #9/28/2006#");
	_ObjectCallMethod( items , "AddBar", h2,"TSplit",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h2,1)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h2,2)"));
	_ObjectCallMethod( items , "AddLink", "L1",h1,"",h2,"");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h2,h3")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h2)
	_ObjectCallMethod(g2antt, "TemplatePut", h3)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h3,1) = CellValue(h2,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h,h3")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "TemplatePut", h3)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h3,2) = CellValue(h,2)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h3")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h3)
	_ObjectCallMethod( items , "AddBar", h3,"TSplit",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h3,1)"),_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h3,2)"));
	_ObjectCallMethod( items , "AddLink", "L2",h2,"",h3,"");
	_ObjectCallMethod( items , "GroupBars", h1,"",0,h2,"",-1,7);
	_ObjectCallMethod( items , "GroupBars", h2,"",0,h3,"",-1,7);
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h1,"");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h2,"");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"",h3,"");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

1702
How can I get notified once the user expands a column

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim _ObObj")
	_ObjectCallMethod(g2antt, "TemplatePut", _ObjectGetProperty( g2antt , "Columns"))
	Message( "Column-Expanded" );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "_ObObj.Item(`C0`).Expanded") );
END

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ShowFocusRect", 0);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
columns = _ObjectGetProperty( g2antt , "Columns");
	column = _ObjectCallMethod( columns , "Add", "C0");
		_ObjectSetProperty( column , "ExpandColumns", "0,1,2");
		_ObjectSetProperty( column , "DisplayExpandButton", -1);
	_ObjectCallMethod( columns , "Add", "C1");
	_ObjectCallMethod( columns , "Add", "C2");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Cell 0.0");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 0.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 0.2`");
	h = _ObjectCallMethod( items , "AddItem", "Cell 1.0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 1.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 1.2`");
_ObjectCallMethod( g2antt , "EndUpdate");

1701
I am using expandable headers, the question is how I can display the column itself, not just the child columns

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
columns = _ObjectGetProperty( g2antt , "Columns");
	column = _ObjectCallMethod( columns , "Add", "C0");
		_ObjectSetProperty( column , "ExpandColumns", "0,1,2");
		_ObjectSetProperty( column , "DisplayExpandButton", -1);
	_ObjectCallMethod( columns , "Add", "C1");
	_ObjectCallMethod( columns , "Add", "C2");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Cell 0.0");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 0.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 0.2`");
	h = _ObjectCallMethod( items , "AddItem", "Cell 1.0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 1.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 1.2`");
_ObjectCallMethod( g2antt , "EndUpdate");